'use strict';
const db = uniCloud.database()
//聚合引用
const $ = db.command.aggregate 
exports.main = async (event, context) => {
	//event为客户端上传的参数
	// 聚合查询 更精细化的去处理数据，求和、分组、指定字段
	const {
		user_id,
		name,
		page=1,
		pageSize=10
	} = event

	let matchObj = {}
	if (name !== "全部") {
		matchObj = {
			classify: name //指定查找哪些字段
		}
	}
	
	const userInfo = await db.collection('user').doc(user_id).get()
	const article_likes_ids = userInfo.data[0].article_likes_ids
	
	let list = await db.collection('article')
	.aggregate()
	//追加字段
		//$.in( )当前某个数组里是否要包含某个值([在该分组内的什么属性里，要在哪个分组的数组中寻找这个字段是否存在])
	.addFields({
		//如下面：article_likes_ids中寻找是否有list.id
		is_like:$.in(['$_id',article_likes_ids])
	})
	.match(matchObj)
	.project({
		content: false //用法类似.field
	})
	.skip(pageSize*(page-1))
	.limit(pageSize)
	.end()
	// let list = await db.collection('article')
	// .field({
	// 	content:false //false表示不返回该字段内容，true表示只返回改字段的内容
	// }).get()
	//返回数据给客户端
	return {
		code: 200,
		msg: "数据请求成功",
		data: list.data
	}
};
